package com.ruoyi.common.core.domain.servicemanage;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 服务优惠卷对象 coupon
 *
 * @author ruoyi
 * @date 2025-06-23
 */
@Data
public class Coupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键自增 */
    private String id;

    /** 用户编号 */
    @Excel(name = "用户编号")
    private String userId;

    /** 优惠券模板ID */
    @Excel(name = "优惠券模板ID")
    private String templateId;

    /** 折扣类型(1.满多少可用或无门槛  2 .折扣) */
    @Excel(name = "折扣类型(1.满多少可用或无门槛  2 .折扣)")
    private Long discountType;

    /** 优惠卷折扣 */
    @Excel(name = "优惠卷折扣")
    private BigDecimal value;

    /** 优惠券获取时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "优惠券获取时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validStart;

    /** 优惠卷过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "优惠卷过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validEnd;

    /** 状态(0.未使用、1.已使用、2.已过期) */
    @Excel(name = "状态(0.未使用、1.已使用、2.已过期)")
    private Long status;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("templateId", getTemplateId())
                .append("discountType", getDiscountType())
                .append("value", getValue())
                .append("validStart", getValidStart())
                .append("validEnd", getValidEnd())
                .append("status", getStatus())
                .toString();
    }
}
